// 5_10 Flip the order of words in a sentence.cpp : Defines the entry point for the console application.
//输入一个英文句子，翻转句子中单词的顺序，但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见，标点符号和普通字母一样处理。
//例如输入“I am a student.”，则输出“student. a am I”。

#include "stdafx.h"
#include <iostream>
#include <string>

using namespace std;

int length_sentence(char a[])
{
	int m=0;
	while(*a!='.')
	{
		a++;
		m++;
	}
	return m+1;
}

void main()
{
	char a[1000];char b[1000];
	int g;//记录最后一个空格的位置  5_10_Revision2 Flip the order of words in a sentence
	
	cout<<"please input the sentense:"<<endl;
	cin.getline(a,1000);
	
	cout<<a<<"   "<<length_sentence(a)<<endl;//i am a student coming from hubei university of techlonogy,majoring in machannical design manufactory and aotomation.
	
	int n=length_sentence(a);
	int start=0;int j;
	for(int i=0;i<n;i++){
		if(a[i]==' '){
			for(j=start;j<=i;j++){
			    // FIXME: length_sentence(a)可以用n，这样避免每次都计算
				b[length_sentence(a)-1-j]=a[j];
				g=i;
			}
			start=i+1;
		}
	}
	for(int u=g+1;u<n;u++){
		b[length_sentence(a)-1-u]=a[u];
	}
	
	for(int x=0;x<n;x++){
		cout<<b[x];
	}
	cout<<endl;
}

// FIXME: 
//  1. 写完之后，并且确保程序正确执行之后，可以再好好看一下代码，哪里可以优化
//  2. 代码最好用UTF-8编码
